﻿using System;
using System.Collections.Generic;
using System.Text;

using Castle.ActiveRecord;
using Castle.Components.Validator;
using MiragePWF.NH.Validation;
using Wolfut.MirageEE.Kernal.Common;
using Wolfut.MirageEE.Domain.CommonUtilities;

namespace Wolfut.MirageEE.Domain.Procurement
{
    //多账户借贷款信息
    [ActiveRecord("MULTI_ACCOUNT_DETAILS")]
    public class MoreAccoutDetail : PersistentObjectWithGuid
    {
        #region 业务编号
        [Property("BUSINESS_CODE")]
        [ValidateNonEmpty, ValidateLength(0, 100, "业务编号超长")]
        public virtual string BusinessCode
        {
            get
            {
                return businessCode;
            }
            set
            {
                businessCode = value;
            }
        }
        private string businessCode;
        #endregion

        #region 类型
        [Property("PAY_TYPE")]
        [ValidateLength(0, 40, "类型超长")]
        public virtual string PayType
        {
            get
            {
                return payType;
            }
            set
            {
                payType = value;
            }
        }
        private string payType;
        #endregion

        #region 账户
        [Property("BANK_ACCOUNT")]
        [ValidateLength(0, 100, "账户超长")]
        public virtual string BankAccount
        {
            get
            {
                return bankAccount;
            }
            set
            {
                bankAccount = value;
            }
        }
        private string bankAccount;
        #endregion

        #region 金额
        [Property("SUM")]
        public virtual decimal Sum
        {
            get
            {
                return sum;
            }
            set
            {
                sum = value;
            }
        }
        private decimal sum;
        #endregion

        #region 支付方式
        [Property("PAYMENT_MODE")]
        [ValidateLength(0, 40, "支付方式超长")]
        public virtual string PaymentMode
        {
            get
            {
                return paymentMode;
            }
            set
            {
                paymentMode = value;
            }
        }
        private string paymentMode;
        #endregion

        #region 参考编号
        [Property("REFERENCE_CODE")]
        [ValidateLength(0, 100, "参考编号超长")]
        public virtual string ReferenctCode
        {
            get
            {
                return referenctCode;
            }
            set
            {
                referenctCode = value;
            }
        }
        private string referenctCode;
        #endregion

        #region 借贷标记
        [Property("ONLOAN_FLAG")]       
        public virtual OnLoanFlag OnLoanFlag
        {
            get
            {
                return onLoanFlag;
            }
            set
            {
                onLoanFlag = value;
            }
        }
        private OnLoanFlag onLoanFlag;
        #endregion

        #region 是否删除
        [Property("IS_DELETED")]
        [ValidateNonEmpty]
        public virtual bool IsDeleted
        {
            get
            {
                return isDeleted;
            }
            set
            {
                isDeleted = value;
            }
        }
        private bool isDeleted;
        #endregion
    }
}
